import axios from "axios";
//1、对axios二次封装 创建一个axios对象，进行改装，然后暴露出去
const requests = axios.create({
    //基础路径，requests发出的请求会在uri前面加上api
    baseURL: '/api',
    timeout: 8000,
})

//引入进度条
import nprogress from 'nprogress';
//引入进度条样式
import "nprogress/nprogress.css";

//2、配置请求拦截器 请求发出去前执行
requests.interceptors.request.use(config => {
    //config内主要是对请求头Header配置
    //比如添加token

    // 进度条开始
    nprogress.start();
    return config;
})

//3、配置响应拦截器 请求响应后执行
requests.interceptors.response.use((res) => {
    //成功的回调函数

    // 响应成功 进度条结束
    nprogress.done();
    return res.data;
}, (error) => {
    //失败的回调函数
    console.log("响应失败：" + error)
    return Promise.reject(new Error('fail'))
})

//4、对外暴露
export default requests;
